package com.hlt.service;

import com.hlt.dto.FollowsPageQueryDTO;
import com.hlt.entity.Follows;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hlt.result.PageResult;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author lzf
 * @since 2024-11-25
 */
public interface IFollowsService extends IService<Follows> {

    /**
     * 关注用户
     * 
     * @param followingId 被关注用户ID
     */
    void follow(Long followingId);

    /**
     * 取消关注用户
     * 
     * @param followingId 被关注用户ID
     */
    void unfollow(Long followingId);

    /**
     * 获取用户的关注列表
     * 
     * @param pageQueryDTO 分页查询参数
     * @return 关注列表
     */
    PageResult getFollowingList(FollowsPageQueryDTO pageQueryDTO);

    /**
     * 获取用户的粉丝列表
     * 
     * @param pageQueryDTO 分页查询参数
     * @return 粉丝列表
     */
    PageResult getFollowersList(FollowsPageQueryDTO pageQueryDTO);

    /**
     * 获取当前用户的关注列表
     * 
     * @param pageQueryDTO 分页查询参数
     * @return 关注列表
     */
    PageResult getCurrentUserFollowingList(FollowsPageQueryDTO pageQueryDTO);

    /**
     * 获取当前用户的粉丝列表
     * 
     * @param pageQueryDTO 分页查询参数
     * @return 粉丝列表
     */
    PageResult getCurrentUserFollowersList(FollowsPageQueryDTO pageQueryDTO);
}
